package encaps.entities;

import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import javax.ejb.CreateException;
import javax.ejb.EJBLocalObject;
import javax.ejb.RemoveException;

public interface MovieLocal extends EJBLocalObject {

    Long getId();

    String getTitle();

    void setTitle(String title);

    String getPicture();

    void setPicture(String pic);

    String getGenres();

    void setGenres(HashSet genres);

    String getCountries();

    void setCountries(String producingCountries);

    Date getRussianReleaseDate();

    void setRussianReleaseDate(Date russianReleaseDate);

    Date getWorldReleaseDate();

    void setWorldReleaseDate(Date worldReleaseDate);

    String getStudio();

    void setStudio(String studio);

    Integer getBudget();

    void setBudget(Integer russianCash);

    Integer getWorldCash();

    void setWorldCash(Integer worldCash);

    Integer getLength();

    void setLength(Integer length);

    String getDescription();

    void setDescription(String description);

    Double getRating();

    void addRating(Double rating, Long user_id, Date date) throws CreateException;

    HashSet<MoviePersonInfo> getPersons();

    void setPersons(HashSet<MoviePersonInfo> persons);

    Integer getNvotes();

    String stringRepresentation();

    Long addComment(Long user_id, String content, Date date) throws CreateException;

    void removeComment(Long comment_id) throws RemoveException;

    void updateComment(Long comment_id, String content, Date date);

    LinkedList<Comment> getComments();
}
